package com.sxhalo.fsms.util;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * 判空方法工具类
 *
 */
public class DataFormatUtils {

	/**
	 * 对象是否为空
	 * 
	 * @param o String,List,Map,Object[],int[],long[]
	 * @return
	 */
	@SuppressWarnings("rawtypes")
	public static boolean isEmpty(Object o) {
		if (o == null) {
			return true;
		}
		if (o instanceof String) {
			if (o.toString().trim().equals("")) {
				return true;
			}
			if (o.equals("null") || o.equals("NULL")) {
				return true;
			}
		} else if (o instanceof List) {
			if (((List) o).size() == 0) {
				return true;
			}
		} else if (o instanceof Map) {
			if (((Map) o).size() == 0) {
				return true;
			}
		} else if (o instanceof Set) {
			if (((Set) o).size() == 0) {
				return true;
			}
		} else if (o instanceof Object[]) {
			if (((Object[]) o).length == 0) {
				return true;
			}
		} else if (o instanceof int[]) {
			if (((int[]) o).length == 0) {
				return true;
			}
		} else if (o instanceof long[]) {
			if (((long[]) o).length == 0) {
				return true;
			}
		}
		return false;
	}

	public static String objectToString(Object o) {
		if (o == null) {
			return null;
		}
		return o.toString();
	}

	public static Integer objectToInteger(Object o) {
		if (o == null) {
			return null;
		}
		return Integer.parseInt(o.toString());
	}

	public static Date objectToDate(Object o, DateFormat formater) throws ParseException {
		if (o == null) {
			return null;
		}
		if (formater == null) {
			formater = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		}
		Date d = null;
		try {
			d = formater.parse(o.toString());
		} catch (Exception e) {
			throw e;
		} 
		return d;
	}

}